package cn.hn.java.summer.nap.model;

import java.util.List;

import lombok.Data;

import org.joda.time.DateTime;

import cn.hn.java.summer.nap.Constants;

@Data
public class ModelInfo {

	/**
	 * 所在项目包名
	 */
	private String nameSpace;
	
	/**
	 * 数据库名
	 */
	private String dataBase;

	/**
	 * 表名
	 */
	private String tableName;
	
	/**
	 * 表名中文
	 */
	private String tableNameCn;
	
	/**
	 * 模型名
	 */
	private String modelName;
	
	/**
	 * 表说明
	 */
	private String tableComment;
	
	private String priKeyQueryStr;
	private String priKeyQueryValue;
	
	/**
	 * 属性列表
	 */
	private List<ModelField> fields;
	
	public void setFields(List<ModelField> fields){
		this.fields=fields;
		createPriKeyQuery();
	}

	public String getModelNameLowerCase(){
		return modelName.toLowerCase();
	}
	
	public String getModelNameCamle(){
		return modelName.toLowerCase().substring(0,1)+modelName.substring(1);
	}
	
	public String getCreateTime(){
		return DateTime.now().toString("yyyMMdd-hh:mm:ss");
	}
	
	private void createPriKeyQuery(){
		if(fields==null || fields.size()==0){
			priKeyQueryStr="";
			return ;
		}
		StringBuffer buffQueryStr=new StringBuffer();
		StringBuffer buffQueryVal=new StringBuffer();
		for(int i=0;i<fields.size();i++){
			ModelField f=fields.get(i);
			if(f.getColumnKey().equals(Constants.PRIMARY_KEY)){
				if(i!=0){
					buffQueryStr.append("&");
					buffQueryVal.append(",");
				}
				buffQueryStr.append(f.getFieldName()).append("={").append(i).append("}");
				buffQueryVal.append("@p.get").append(f.getFieldName2()).append("()");
				i++;
			}
		}
		priKeyQueryStr=buffQueryStr.toString();
		priKeyQueryValue=buffQueryVal.toString();
	}
}
